#include <stdio.h>
#include <sys/types.h>  // getpid, getppid
#include <unistd.h>  // sleep

int main()
{
    printf("I am parent process! pid: %d\n", getpid());
    pid_t id = fork();
    if (id < 0)
    {
        // 创建子进程失败
        perror("fork");  // 打印出fork失败的原因
        return 1;
    }
    else if (id == 0)
    {
        // child process(task)
        while (1)
        {
            printf("I am child, pid: %d, ppid: %d\n", getpid(), getppid());
            sleep(1);
        }
    }
    else
    {
        // parent process
        while (1)
        {

            printf("I am father, pid: %d, ppid: %d\n", getpid(), getppid());
            sleep(1);
        }
    }
    
    return 0;
}
